gusucode.com > VC++ RingSDK界面库 > VC++ RingSDK界面库/code/libsrc/ringdows/ringipaddr.cpp

    /**********************************************************************
//
//
//        ##########                          ######  #########   # ######    #
//      #############                      ########### ######### #########  ###
//     ######## # ###  ##                 ############# ##    ## #####  # ####
//     ####  ##    ## ###                 ###     ### # #      #####   #####
//          #     ###  #            #     ##       ##  ##      ##     ###
//         ## ###### ##      ##  ####    ####          #       #     ##
//       #########  ###  ## ### #######   ######      ##      ##    ###
//      ######      ##  ######  ##  ##       ####     #      ##     ####
//     #######     ##   ###### ##  ###          ##   ##     ###    ######
//     #########   ##  ###### ## ######         ### ##    ###      #  #####
//    ##    ###### ####### ### #### ##  ## #######  ########      ##    ####
//    ##      #### ###  #  ### ### ##  ##########   ######       ##      ####
//   ##         ##                ##   #########    ####         #         ##
//               #              ###
//                              ##
//                             ###
//                             ##
//
//
//							临风程序界面类库 ringdows.lib
//作者:临风
//
//版本:1.0
//
//声明:本类库可以自由使用而不须对作者作出任何回报,但作者希望能得到
//		  你的鼓励和支持。你可以对类库源码作出修改和改进,但希望你能在
//		  修改的同时给作者一份同样的副本。
//		  本类库不得用于任何商业用途,如确实需要,请与作者联系。
//
//e-mail:ringphone@sina.com
//
//原文件名:ringipaddr.cpp
//
//说明:IP地址控件控制
//
**********************************************************************/
#define MAKE_SELF_LIB
#include "ringdows.h"

RingIPAddr::RingIPAddr()
{
	InitIPControl();
}

BOOL RingIPAddr::Create(UINT uId,int x,int y,int width,int height)
{
	return Create(0,0,NULL,uId,x,y,width,height);
}

BOOL RingIPAddr::Create(DWORD dwStyle,DWORD dwExStyle,LPCTSTR szInitText,UINT uId,int x,int y,int width,int height)
{
	return RingControls::Create(dwStyle,dwExStyle,szInitText,uId,x,y,width,height);
}

int RingIPAddr::GetInt(int)
{
	DWORD dwRes;
	SendMessage(m_hWnd,IPM_GETADDRESS,0,(LPARAM)&dwRes);
	return dwRes;
}

BOOL RingIPAddr::SetValue(LPCTSTR lpszVal,int)
{
	char szip[16];
	LPSTR lps = (LPSTR)lpszVal,lpi = lps;
	int i,j,nCnt = 0;
	int ip[4] = {0,0,0,0};

	if(lpszVal)
	{
		strncpy(szip,lpszVal,15);
		lps = szip;
	
		for(i=0;i<4;i++)
		{
			for(j=0;j<4;j++)
			{
				if(*lps == '\0' || *lps == '.')
				{
					if(*lps == '.')
						*lps++ = '\0';
					
					ip[i] = atoi(lpi);
					lpi = lps;
					break;
				}
				else
					lps ++;
			}
			if(*lps == '\0')
				break;
		}
		SendMessage(m_hWnd,IPM_SETADDRESS,0,MAKEIPADDRESS(ip[0],ip[1],ip[2],ip[3]));
		return TRUE;
	}
	return FALSE;
}

int RingIPAddr::GetItemText(int,LPTSTR lpBuf,int size)
{
	DWORD dw;
	SendMessage(m_hWnd,IPM_GETADDRESS,0,(LPARAM)&dw);
	if(size >= 16)
	{
		wsprintf(lpBuf,"%d.%d.%d.%d\0",FIRST_IPADDRESS(dw),SECOND_IPADDRESS(dw),
				THIRD_IPADDRESS(dw),FOURTH_IPADDRESS(dw));
		return strlen(lpBuf);
	}
	else
		return 0;
}